namespace ext.slider
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Slider which supports vertical or horizontal orientation, keyboard adjustments, configurable snapping, axis clicking and animation. Can be added as an item to any container. Example usage:
	/// 
	/// new Ext.Slider({
	/// renderTo: Ext.getBody(),
	/// width: 200,
	/// value: 50,
	/// increment: 10,
	/// minValue: 0,
	/// maxValue: 100
	/// });
	/// 
	/// Sliders can be created with more than one thumb handle by passing an array of values instead of a single one:
	/// 
	/// new Ext.Slider({
	/// renderTo: Ext.getBody(),
	/// width: 200,
	/// values: [25, 50, 75],
	/// minValue: 0,
	/// maxValue: 100,
	///
	/// //this defaults to true, setting to false allows the thumbs to pass each other
	/// {@link #constrainThumbs}: false
	/// });
	/// </summary>
	/// <htmlSummary>
	/// Slider which supports vertical or horizontal orientation, keyboard adjustments, configurable snapping, axis clicking and animation. Can be added as an item to any container. Example usage:
	/// &lt;pre&gt;
	/// new Ext.Slider({
	/// renderTo: Ext.getBody(),
	/// width: 200,
	/// value: 50,
	/// increment: 10,
	/// minValue: 0,
	/// maxValue: 100
	/// });
	/// &lt;/pre&gt;
	/// Sliders can be created with more than one thumb handle by passing an array of values instead of a single one:
	/// &lt;pre&gt;
	/// new Ext.Slider({
	/// renderTo: Ext.getBody(),
	/// width: 200,
	/// values: [25, 50, 75],
	/// minValue: 0,
	/// maxValue: 100,
	///
	/// //this defaults to true, setting to false allows the thumbs to pass each other
	/// {@link #constrainThumbs}: false
	/// });
	/// &lt;/pre&gt;
	/// </htmlSummary>
	/// <definedin>src\widgets\Slider.js</definedin>
	[ScriptName("MultiSlider")]
	[ScriptNamespace("Ext.slider")]
	[Imported()]
	public partial class MultiSlider : ext.BoxComponent
	{
		
		#region Constructors
		public MultiSlider(ext.slider.MultiSlider_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public MultiSlider()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>The value to initialize the slider with. Defaults to minValue.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("value")]
		public System.Number Value;
		
		/// <summary>Orient the Slider vertically rather than horizontally, defaults to false.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("vertical")]
		public bool Vertical;
		
		/// <summary>The minimum value for the Slider. Defaults to 0.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("minValue")]
		public System.Number MinValue;
		
		/// <summary>The maximum value for the Slider. Defaults to 100.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("maxValue")]
		public System.Number MaxValue;
		
		/// <summary>The number of decimal places to which to round the Slider&apos;s value. Defaults to 0.  To disable rounding, configure as false.</summary>
		/// <htmlSummary>
		/// &lt;p&gt;The number of decimal places to which to round the Slider&apos;s value. Defaults to 0.&lt;/p&gt;
		/// &lt;p&gt;To disable rounding, configure as &lt;tt&gt;&lt;b&gt;false&lt;/b&gt;&lt;/tt&gt;.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("decimalPrecision")]
		public ext.auto.System_Boolean_Or_System_Number DecimalPrecision;
		
		/// <summary>How many units to change the Slider when adjusting with keyboard navigation. Defaults to 1. If the increment config is larger, it will be used instead.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("keyIncrement")]
		public System.Number KeyIncrement;
		
		/// <summary>How many units to change the slider when adjusting by drag and drop. Use this option to enable &apos;snapping&apos;.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("increment")]
		public System.Number Increment;
		
		/// <summary>Determines whether or not clicking on the Slider axis will change the slider. Defaults to true</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("clickToChange")]
		public bool ClickToChange;
		
		/// <summary>Turn on or off animation. Defaults to true</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("animate")]
		public bool Animate;
		
		/// <summary>True to disallow thumbs from overlapping one another. Defaults to true</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("constrainThumbs")]
		public bool ConstrainThumbs;
		
		/// <summary>
		/// Fires before the slider value is changed. By returning false from an event handler,
		/// you can cancel the event and prevent the slider from changing.
		/// </summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("beforechangeEventName")]
		public const string BeforechangeEventName = "beforechange";
		
		/// <summary>Fires when the slider value is changed.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("changeEventName")]
		public const string ChangeEventName = "change";
		
		/// <summary>Fires when the slider value is changed by the user and any drag operations have completed.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("changecompleteEventName")]
		public const string ChangecompleteEventName = "changecomplete";
		
		/// <summary>Fires after a drag operation has started.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("dragstartEventName")]
		public const string DragstartEventName = "dragstart";
		
		/// <summary>Fires continuously during the drag operation while the mouse is moving.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("dragEventName")]
		public const string DragEventName = "drag";
		
		/// <summary>Fires after the drag operation has completed.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("dragendEventName")]
		public const string DragendEventName = "dragend";
		#endregion
		
		#region Properties
		/// <summary>Array containing references to each thumb</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("thumbs")]
		[IntrinsicProperty()]
		public System.Array Thumbs
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>Array of values to initalize the thumbs with</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("values")]
		[IntrinsicProperty()]
		public System.Array Values
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		#endregion
		
		#region Methods
		/// <summary>Creates a new thumb and adds it to the slider</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		/// <param name="value">The initial value to set on the thumb. Defaults to 0</param>
		[ScriptName("addThumb")]
		public void AddThumb(System.Number value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sets the minimum value for the slider instance. If the current value is less than the
		/// minimum value, the current value will be changed.
		/// </summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		/// <param name="val">The new minimum value</param>
		[ScriptName("setMinValue")]
		public void SetMinValue(System.Number val)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sets the maximum value for the slider instance. If the current value is more than the
		/// maximum value, the current value will be changed.
		/// </summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		/// <param name="val">The new maximum value</param>
		[ScriptName("setMaxValue")]
		public void SetMaxValue(System.Number val)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Programmatically sets the value of the Slider. Ensures that the value is constrained within
		/// the minValue and maxValue.
		/// </summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		/// <param name="index">Index of the thumb to move</param>
		/// <param name="value">The value to set the slider to. (This will be constrained within minValue and maxValue)</param>
		/// <param name="animate">Turn on or off animation, defaults to true</param>
		[ScriptName("setValue")]
		public void SetValue(System.Number index, System.Number value, bool animate)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Synchronizes the thumb position to the proper proportion of the total component width based
		/// on the current slider {@link #value}. This will be called automatically when the Slider
		/// is resized by a layout, but if it is rendered auto width, this method can be called from
		/// another resize handler to sync the Slider if necessary.
		/// </summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("syncThumb")]
		public void SyncThumb()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns the current value of the slider</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		/// <param name="index">The index of the thumb to return a value for</param>
		/// <returns>The current value of the slider</returns>
		[ScriptName("getValue")]
		public System.Number GetValue(System.Number index)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns an array of values - one for the location of each thumb</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		/// <returns>The set of thumb values</returns>
		[ScriptName("getValues")]
		public System.Array GetValues()
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>
		/// Fires before the slider value is changed. By returning false from an event handler,
		/// you can cancel the event and prevent the slider from changing.
		/// </summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("beforechange")]
		public event ext.auto.Delegate_ext_slider_MultiSlider_And_System_Number_And_System_Number Beforechange;
		
		/// <summary>Fires when the slider value is changed.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("change")]
		public event ext.auto.Delegate_ext_slider_MultiSlider_And_System_Number_And_ext_slider_Thumb Change;
		
		/// <summary>Fires when the slider value is changed by the user and any drag operations have completed.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("changecomplete")]
		public event ext.auto.Delegate_ext_slider_MultiSlider_And_System_Number_And_ext_slider_Thumb Changecomplete;
		
		/// <summary>Fires after a drag operation has started.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("dragstart")]
		public event ext.auto.Delegate_ext_slider_MultiSlider_And_ext_EventObject Dragstart;
		
		/// <summary>Fires continuously during the drag operation while the mouse is moving.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("drag")]
		public event ext.auto.Delegate_ext_slider_MultiSlider_And_ext_EventObject Drag;
		
		/// <summary>Fires after the drag operation has completed.</summary>
		/// <definedin>src\widgets\Slider.js</definedin>
		[ScriptName("dragend")]
		public event ext.auto.Delegate_ext_slider_MultiSlider_And_ext_EventObject Dragend;
		#endregion
	}
}
